/*
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
° 	HONORE Perrine
° 	GIOVANETTI Romain
°
° 	Master 2 - E-services TWA Project
°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
*/

/*
clientslist_id
clientslist_list
*/

function o_clientslist()
{
	this.clientslist_id = 0;
	this.clientslist_list = new Array();
}

function getClientByLogin(liste, login)
{
	for (var i in liste.clientslist_list)
	{
		if(liste.clientslist_list[i].client_nickname == login)
		{
			return liste.clientslist_list[i];
		}
	}
}

function getClientById(liste, id)
{
	for (var i in liste.clientslist_list)
	{
		if(liste.clientslist_list[i].client_id == id)
		{
			return liste.clientslist_list[i];
		}
	}
}

function getIdByOnlineID(liste, onlineId)
{
	for (var i in liste.clientslist_list)
	{
		if(liste.clientslist_list[i].client_onlineId == onlineId)
		{
			return liste.clientslist_list[i].client_id;
		}
	}
}

function getOnlineClientsList(liste)
{
	var listeDesOnlines = new Array();
	for (var i in liste.clientslist_list)
	{
		if(liste.clientslist_list[i].client_status != 0)
		{
			listeDesOnlines.push(liste.clientslist_list[i].client_nickname);
		}
	}
	return listeDesOnlines;
}

function getLastId(liste)
{
	if(liste.clientslist_list.length == 0)
	{
		return 0;
	}
	return liste.clientslist_list[liste.clientslist_list.length-1].client_id;
}

function createUser(liste, onlineId, nickname, password, bdd)
{
	bdd.transaction(function (tx)
	{
		tx.executeSql('INSERT INTO clients(client_onlineId, client_nickname, client_password, client_status) VALUES ("'+onlineId+'", "'+nickname+'", "'+password+'", 0)',[], function (tx,rs) { 
			var nouveauClient = new o_client();
			nouveauClient.client_id = rs.insertId;
			nouveauClient.client_onlineId = onlineId;
			nouveauClient.client_nickname = nickname;
			nouveauClient.client_password = password;
			nouveauClient.client_status = 0;
			liste.clientslist_list.push(nouveauClient);
		});
	});
	return getLastId(liste);
}

function updateUser(userId, onlineId, nickname, password, status, bdd, liste)
{
	bdd.transaction(function (tx)
	{
		tx.executeSql("UPDATE clients SET client_onlineId = '"+onlineId+"', client_nickname = '"+nickname+"', client_password = '"+password+"', client_status = '"+status+"' WHERE client_id = "+userId,[], function (tx,rs) { 
			var client = getClientById(liste, userId);
			client.client_onlineId = onlineId;
			client.client_nickname = nickname;
			client.client_password = password;
			client.client_status = status;
		});
	});
}

function setStatus(userId,status, bdd,liste)
{
	var client = getClientById(liste, userId);
	updateUser(userId, client.client_onlineId, client.client_nickname, client.client_password,status,bdd,liste);
}


var init = new o_clientslist();